What's our next JVM language?
Anushree Singh
Krazyglue Team
Problem Statement
Explore and study new languages to make sure we are using the most efficient one
Scope & Goals
Understand the KG (Krazyglue) application
Explore and find candidate JVM languages
Refactor a part of KG to each of the candidate languages
Compare the languages based on performance and other metrics
Recommend a JVM language for KG
What kind of application is krazyglue:
Computation intensive
DB Intensive
Request driven ✔
Candidate languages
Clojure
Emphasis on functional programming
Groovy
Dynamic language with static-typing - concise, easy to learn syntax
Kotlin
Statically typed for JVM, Android and the browser
Scala
Full support for functional programming and object oriented programming
Choose a part of krazyglue to work on which:
is of appropriate size
is not strongly connected to other modules
has some complex logic or language features
Point of Sale Retreiver
Why is Clojure not a good fit
OOPs to functional programming transformation.
Challenging to work with Spring. Works better with other frameworks - Fleet or Hiccup.
It is aimed for multithreaded and concurrent programs.
Syntax is very different from Java.
Non performance metrics
Results: Non performance metrics
Performance metrics
CPU Usage
↑ CPU usage = ↓ performance
Classes loaded
↑ Number of classes loaded = ↓ performance
Heap Size used
↑ heap size used = ↓ performance
Threads started
Results: Performance
Final Results
My Recommendation : SCALA
Thank you! ✌️
The presentation can be found on: https://anushreesingh.github.io/krazypresentation/
This presentation has been made using markpress (
https://www.npmjs.com/package/markpress
)